#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <cstdio>
#include <iomanip>

using namespace std;

void Count(int cnt)
{
    while(cnt)
    {
        // printf("%2d\r", cnt);
        cout << "\r" << setw(2) << cnt << flush; //使用 std::setw 来指定输出宽度
        // fflush(stdout);
        cnt--;
        sleep(1);
    }
}


void handler(int signo)
{
    cout << "get a signo: " << signo << "正在处理" << endl;
    Count(10);
}

int main()
{
    struct sigaction act, oact;
    act.sa_handler = handler;
    act.sa_flags = 0;
    sigemptyset(&act.sa_mask);
    // sigaddset(&act.sa_mask,3);
    // sigaddset(&act.sa_mask,9);
    sigaction(2, &act, &oact);
    
    while(true)
        sleep(1);
    return 0;
}